Push it to the limit
Push it to the limit est un challenge orienté Web sur la plateforme Hackropole.
Il est noté comme difficulté Intro.
Installation
Téléchargez le docker-compose.yml sur leur site ou alors via la commande:
curl https://hackropole.fr/challenges/fcsc2021-web-push-it-to-the-limit/docker-compose.public.yml -o docker-compose.yml
Lancez le challenge en exécutant la commande:
docker compose up
Vous pouvez alors accéder au challenge via l'URL http://localhost:8000.
Exploration
Exploitez une injection SQL afin de vous connecter sur l’application web.
Une injection SQL est le fait d'arriver à modifier, via des paramètres, une requête SQL pour la dévier de sa fonction principale.
Ici il faut dévier la requête afin qu'elle nous permette de nous connecter.
La page d'accueil du challenge nous affiche un page d'authentification.
Nous allons tester des identifiants basiques de connexion:
- admin
- admin
L'application nous renvoie que les identifiants sont invalides. En regardant dans la console développeur dans l'onglet Elements, on apperçoit un commentaire avec la requête que nous faisons.
Décortiquons la requête SQL ensemble:
SELECT * FROM users WHERE username="admin" AND password="admin"
La requête commence par SELECT, son but est de récupérer des informations et plus précisement toutes comme l'indique *. Elle les récupère depuis la table users avec la condition (WHERE) que le nom d'utilisateur soit égal à admin et le mot de passe à admin.
Exploitation
Pour dévier cette requête de sa fonction, nous allons essayer de désactiver la condition du mot de passe ainsi si l'utilisateur admin existe l'application nous laissera nous connecter.
Pour cela, nous allons commenter la deuxième conditon grâce aux caractères --.
Nos entrées seront:
- admin" --
- admin (car l'application nous oblige à inserer un mot de passe)
Ainsi la requête sera:
SELECT * FROM users WHERE username="admin" --" AND password="admin"
On voit bien la partie grisée qui ne sera pas interprétée par la base de données.
Si l'on rentre ces identifiants, l'application nous renvoie:
Bravo ! Vous venez de réussir le challenge. Copiez le flag et entrez le sur le site d'Hackropole pour confirmer votre victoire.